﻿// This software is the confidential and proprietary information of NetBay.
// Such confidential information should not be disclosed.
// NetBay copyright(c) 2012

#region

using Rio.Workflow.Runtime.Enums;

#endregion

namespace Rio.Workflow.Runtime
{
    /// <summary>
    /// Must be implemented by a workflow action
    /// </summary>
    public interface IActionExecutor
    {
        #region Instance Methods

        /// <summary>
        /// Actions the executed.
        /// </summary>
        /// <param name="wkfContext">The WKF context.</param>
        /// <param name="request">The request.</param>
        /// <returns></returns>
        ActionResult ActionExecuted(WorkflowContextBase wkfContext, ActionRequest request);

        /// <summary>
        /// Actions the executed all.
        /// </summary>
        /// <param name="context">The context.</param>
        /// <param name="request">The request.</param>
        /// <returns></returns>
        ActionResult ActionExecutedAll(WorkflowContextBase context, ActionRequest request);

        /// <summary>
        /// Actions the executing.
        /// </summary>
        /// <param name="wkfContext">The WKF context.</param>
        /// <param name="request">The request.</param>
        /// <returns></returns>
        ActionResult ActionExecuting(WorkflowContextBase wkfContext, ActionRequest request);

        /// <summary>
        /// Actions the executing all.
        /// </summary>
        /// <param name="context">The context.</param>
        /// <param name="request">The request.</param>
        /// <returns></returns>
        ActionResult ActionExecutingAll(WorkflowContextBase context, ActionRequest request);

        #endregion
    }
}